package dao;
import java.util.List;

import org.hibernate.Transaction;
import org.hibernate.classic.Session;

import util.HibernateUtil;
import entity.ItemParcelaVenda;


public class ItemParcelaVendaDaoImplementation implements ItemParcelaVendaDao {

	public void save(ItemParcelaVenda itemParcelaVenda) 
	{
		Session session = HibernateUtil.getSessionFactory().openSession();
		Transaction transaction = session.beginTransaction();
		session.save(itemParcelaVenda);
		transaction.commit();
		session.close();
	}

	public void update(ItemParcelaVenda itemParcelaVenda) 
	{
		Session session = HibernateUtil.getSessionFactory().openSession();
		Transaction transaction = session.beginTransaction();
		session.update(itemParcelaVenda);
		transaction.commit();
	}

	public void delete(ItemParcelaVenda itemParcelaVenda) 
	{
		Session session = HibernateUtil.getSessionFactory().openSession();
		Transaction transaction = session.beginTransaction();
		session.delete(itemParcelaVenda);
		transaction.commit();
	}

	public void consult(ItemParcelaVenda itemParcelaVenda) 
	{
		Session session = HibernateUtil.getSessionFactory().openSession();
		Transaction transaction = session.beginTransaction();
		itemParcelaVenda = (ItemParcelaVenda) session.load(ItemParcelaVenda.class, new String("ItemParcelaVenda"));
	}

	public ItemParcelaVenda getItemParcelaVenda(long id) 
	{
		Session session = HibernateUtil.getSessionFactory().openSession();
		return (ItemParcelaVenda) session.load(ItemParcelaVenda.class, id);
	}
	
	public List<ItemParcelaVenda> list() 
	{
	Session session = HibernateUtil.getSessionFactory().openSession();
	Transaction transaction = session.beginTransaction();
	String sql = "SELECT new ItemParcelaVenda( i.idItemParcelaVenda, i.parcela, i.vencimento, i.valor, i.status, i.venda) " +
			"FROM ItemParcelaVenda i " +
			"order by i.vencimento";
	List<ItemParcelaVenda> lista = session.createQuery(sql).list();
	transaction.commit();
	session.close();
	return lista;
	}

	public List<ItemParcelaVenda> listItemParcelaVendaNull() {
		Session session = HibernateUtil.getSessionFactory().openSession();
        Transaction transaction = session.beginTransaction();
        String sql = "FROM ItemParcelaVenda WHERE venda="+null;
        List<ItemParcelaVenda> listaParcelaVenda = session.createQuery(sql).list();
        transaction.commit();
        session.close();
        return listaParcelaVenda;
	}
}
	

